C语言简答题:*p[N]和(*p)[N]的区别

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:54:42

*p[N]为指针数组,即该数组里面存放的是地址
(*p)[N]为数组,即该数组里面存放的是内容,数组名字为指针类型

*p[N]为指针数组(数组元素都是指针型)
(*p)[N]为指向数组的指针

*p[N]是指向指针(实参)的指针,表示方式还有*p[],**p;而(*p)[N]是一个行指针变量,fun(int (*p)[N],fun(int p[][N]),fun(int p[M][N])都是一个意思。

#include<iostream.h>
void main()
{
const int N=3;
int *p[N],a=5,b[N]={0,1,3},i=0;
p[i]=&a; //这里i可以取到大于N的数,但如果远大于N,有可能运行出错(虽然编译可以通过),但不是他们的区别
int (*pp)[N];
pp=&b; //b的大小必须为 N,否则都会出错。pp为b的首地址
cout<<*p[0]<<endl;
}

再加上上面几位的文字描述,应该可以理解了